package schema

import "time"

type RobotPaymentConfig struct {
	SalesID  string         `json:"sales_id"`
	Payments []PaymentsData `json:"payments"`
}

type PaymentsData struct {
	Type string `json:"type"`
	ID   int    `json:"id"`
}

type RobotSalesInfoParams struct {
	RobotID string         `json:"robot_id"`
	SalesID string         `json:"sales_id"`
	Data    []SetGoodsData `json:"data"`
}

type AndriodRobotSalesInfoParams struct {
	UserID  string                `json:"user_id"`
	RobotID string                `json:"robot_id"`
	SalesID string                `json:"SalesID"`
	Data    []AndriodSetGoodsData `json:"Data"`
}

type SetGoodsData struct {
	ContainerFloor     int       `json:"container_floor"`
	ContainerNum       int       `json:"container_num"`
	ClassID            string    `json:"class_id"`
	GoodsID            string    `json:"goods_id"`
	GoodsName1         string    `json:"goods_name1"`
	GoodsImage         string    `json:"goods_image"`
	ContainerType      *int      `json:"container_type"`
	ContainerStatus    int       `json:"container_status"`
	ContainerUseStatus *int      `json:"container_use_status"`
	GoodsInventory     int       `json:"goods_inventory"`
	GoodsMaxInventory  int       `json:"goods_max_inventory"`
	AddTime            time.Time `json:"add_time"`
	SalesID            string    `json:"sales_id"`
	RobotName          string    `json:"robot_name"`
}

type AndriodSetGoodsData struct {
	ContainerFloor     string    `json:"ContainerFloor"`
	ContainerNum       string    `json:"ContainerNum"`
	ClassID            string    `json:"ClassID"`
	GoodsID            string    `json:"GoodsID"`
	GoodsName1         string    `json:"GoodsName1"`
	GoodsImage         string    `json:"GoodsImage"`
	ContainerType      *string   `json:"ContainerType"`
	ContainerStatus    string    `json:"ContainerStatus"`
	ContainerUseStatus *string   `json:"ContainerUseStatus"`
	GoodsInventory     string    `json:"GoodsInventory"`
	GoodsMaxInventory  string    `json:"GoodsMaxInventory"`
	AddTime            time.Time `json:"AddTime"`
	SalesID            string    `json:"SalesID"`
}

// RobotGoodsStatus 设备商品状态数据
type RobotGoodsStatus struct {
	SalesID    string    `json:"sales_id"`
	RobotName  string    `json:"robot_name"`
	GoodsID    string    `json:"goods_id"`
	GoodsNum   int       `json:"goods_num"`
	GoodsName  string    `json:"goods_name"`
	LogID      int64     `json:"log_id"`
	GoodsName1 string    `json:"goods_name1"`
	PreNum     int       `json:"pre_num"`
	AddTime    time.Time `json:"add_time"`
	ChangeNum  int       `json:"change_num"`
	LastNum    int       `json:"last_num"`
}

// ThirdConfigData 第三方基础配置
type ThirdConfigData struct {
	ID         int64                  `json:"id"`
	PaymentID  string                 `json:"payment_id"`
	Name       string                 `json:"name"`
	MerchantID string                 `json:"merchant_id"`
	PayInfo    map[string]interface{} `json:"payinfo"`
}

type PaymentAlipay struct {
	AliPayAppID      string `json:"ali_pay_app_id" json_old:"AliPayAppID"`
	AliPayPrivateKey string `json:"ali_pay_private_key" json_old:"AliPayPrivateKey"`
}

type PaymentDx struct {
	DxAppID      string `json:"dx_app_id" json_old:"DxAppID"`
	DxAppKey     string `json:"dx_app_key" json_old:"DxAppKey"`
	DxSellerID   string `json:"dx_seller_id" json_old:"DxSellerID"`     // 收款账户
	DxMerchantID string `json:"dx_merchant_id" json_old:"DxMerchantID"` // 大兴商铺号
	DxShopID     string `json:"dx_shop_id" json_old:"DxShopID"`         // 大兴商场号
}

type PaymentJh struct {
	JhMerchantNum string `json:"jh_merchant_num" json_old:"JhMerchantNum"` // 聚合商户号
	JhApiKey      string `json:"jh_api_key" json_old:"JhApiKey"`           // 聚合支付密码
}

type PaymentWechat struct {
	WeChatMchID  string `json:"we_chat_mch_id" json_old:"WeChatmchID"`   // 微信支付商户号
	WeChatAppID  string `json:"we_chat_app_id" json_old:"WeChatAppID"`   // 微信公众号AppID
	WeChatAppKey string `json:"we_chat_app_key" json_old:"WeChatAppKey"` // 微信支付密钥
	CertFile     string `json:"cert_file" json_old:"CertFile"`           // 证书
}

type PaymentStripe struct {
	StripePrivKey string `json:"stripe_priv_key" json_old:"StripePrivKey"` // stripe私钥
	StripePubKey  string `json:"stripe_pub_key" json_old:"StripePubKey"`   // stripe公钥
}

// 支付方式返回
type PaymentCommon struct {
	ID        int    `json:"id" json_old:"ID"`
	PaymentID string `json:"payment_id" json_old:"PaymentID"`
	ShopID    string `json:"shop_id" json_old:"ShopID"`
	Name      string `json:"name" json_old:"Name"`
	Deleted   int    `json:"deleted" json_old:"Deleted"`
}

type PaymentAlipayRsp struct {
	PaymentCommon
	PaymentAlipay
}

type PaymentDxRsp struct {
	PaymentCommon
	PaymentDx
}

type PaymentJhRsp struct {
	PaymentCommon
	PaymentJh
}

type PaymentPosRsp PaymentCommon

type PaymentSmallRsp struct {
	PaymentCommon
	PaymentWechat
}

type PaymentStripeRsp struct {
	PaymentCommon
	PaymentStripe
}

type PaymentWechatRsp struct {
	PaymentCommon
	PaymentWechat
}
